// import com.alibaba.druid.sql.visitor.SQLASTVisitor;
#pragma once
#include "SQLObjectImpl.h"

class SQLKeep_DenseRank
{
public:
  static SQLKeep_DenseRank_ptr FIRST;
  static SQLKeep_DenseRank_ptr LAST;

  uint64_t mask_;
  string_ptr name_;
  SQLKeep_DenseRank(uint64_t mask, string_ptr name);
};

class SQLKeep
    : virtual public SQLObjectImpl
{
public:
  SQLKeep_DenseRank_ptr denseRank;

  SQLOrderBy_ptr orderBy;

  SHAREDOBJECT(SQLKeep);
  // @Override
  void accept0(SQLASTVisitor_ptr visitor);

  SQLKeep_DenseRank_ptr getDenseRank();

  void setDenseRank(SQLKeep_DenseRank_ptr denseRank);

  SQLOrderBy_ptr getOrderBy();

  void setOrderBy(SQLOrderBy_ptr orderBy);

  SQLObject_ptr clone();
};
